﻿using System;
using System.ServiceModel;

namespace InterfacesPhoneCommands
{
    [ServiceContract(SessionMode = SessionMode.Required)]
    public interface IPhoneService: IPhoneApi
    {
        [OperationContract]
        ResponseConnectableDevice ConnectableDevice();

        [OperationContract]
        ResponseConnectableDevice SelectConnectableDevice(string namedevice);

        [OperationContract]
        ResponseVoid Connect();

        [OperationContract]
        ResponseVoid CloseEmulator(string title);

        [OperationContract]
        ResponseVirtualMachines Machines(bool reload);

        [OperationContract]
        ResponseVoid CleanUpMachines();

        [OperationContract]
        ResponseVoid CloseMachine(string nameVm);

        [OperationContract]
        ResponseVoid CreateSnapshot(string vmName, string nameSnapshot);

        [OperationContract]
        ResponseVoid DeleteSnapshot(string vmName, string nameSnapshot);

        //operation only host
        void CloseXdeVirtualMachines();

        //operation only host
        VirtualMachine FindVirtualMachine(string vmName);

        //operation only host
        event EventHandler<ChangedMachineStatusEventArgs> ChangedMachineStatus;


    }
}